package study.java.jdk.jdk7.P01_fork_join;

import lombok.extern.slf4j.Slf4j;
import org.junit.Test;

import java.util.concurrent.ForkJoinPool;
import java.util.concurrent.RecursiveTask;

/**
 * Fork/Join框架重点说明：
 * （1）在必要的情况下，将一个大任务，进行拆分（fork） 成若干个子任务（拆到不能再拆，这里就是指我们制定的拆分的临界值）
 * 再将一个个小任务的结果进行join汇总。
 * （2）Fork/Join采用“工作窃取模式”。
 * （3）ForkJoin更有效的利用的CPU资源。
 * （4）Java 8 中将并行流进行了优化，Stream API可以声明性的通过parallel()与sequential()在并行流与串行流中随意切换。
 */
@Slf4j
public class ForkJoin_01_Test {

    @Test
    public void test() {
        ForkJoinPool forkJoinPool = new ForkJoinPool();
    }

    private static class MyTask extends RecursiveTask<Integer> {
        @Override
        protected Integer compute() {
            return null;
        }
    }
}
